package com.jiazixuan.stock.service;

import com.jiazixuan.stock.pojo.domain.SysUserDomain;
import com.jiazixuan.stock.pojo.entity.SysUser;
import com.jiazixuan.stock.vo.req.AddUserReqVo;
import com.jiazixuan.stock.vo.req.LoginReqUsers;
import com.jiazixuan.stock.vo.req.LoginReqVo;
import com.jiazixuan.stock.vo.req.SysUserUpdateReqVo;
import com.jiazixuan.stock.vo.resp.*;

import java.util.List;
import java.util.Map;

public interface UserService {

    SysUser findByUserName(String userName);

//    //登录
//    R<LoginRespVo> login(LoginReqVo vo);

    R<LoginRespVoWithMenusAndPermissions> login(LoginReqVo vo);

    /**
     * 生成登录校验码的访问接口
     * @return
     */
    R<Map> getCaptchaCode();

    /**
     *多条件综合查询用户分页信息
     */
    R<PageResult<SysUserDomain>> getUsers(LoginReqUsers users);

    /**
     * 添加用户
     * @param vo
     * @return
     */
    R addUser(AddUserReqVo vo);

    R deleteUser(List<Long> userIds);

    /**
     * 根据id获取用户基本信息
     * @param id
     * @return
     */
    R<UserInfoRespVo> getUserInfoById(String id);

    /**
     * 根据id更新用户基本信息
     * @param vo
     * @return
     */
    R updateUserInfoById(SysUserUpdateReqVo vo);
}
